/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.sapra.abc;


import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
import nextapp.echo2.app.Alignment;
import nextapp.echo2.app.ApplicationInstance;
import nextapp.echo2.app.Button;
import nextapp.echo2.app.CheckBox;
import nextapp.echo2.app.Color;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.ContentPane;
import nextapp.echo2.app.Extent;
import nextapp.echo2.app.Row;
import nextapp.echo2.app.SelectField;
import nextapp.echo2.app.event.ActionEvent;
import nextapp.echo2.app.event.ActionListener;
import nextapp.echo2.app.filetransfer.Download;
import nextapp.echo2.app.filetransfer.DownloadProvider;
import nextapp.echo2.app.list.DefaultListModel;
import nextapp.echo2.webrender.WebRenderServlet;
import org.sapra.dao.Practicante;
import org.sapra.dao.PracticanteReporte;
import org.sapra.echo.Helpers;
import org.sapra.logon.dLogin;
import org.sapra.main.vPrincipal;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import nextapp.echo2.app.Border;
import nextapp.echo2.app.Font;
import nextapp.echo2.app.Grid;
import nextapp.echo2.webcontainer.command.BrowserOpenWindowCommand;
import org.sapra.dao.CCosto;
import org.sapra.dao.Carrera;
import org.sapra.dao.Departamento;
import org.sapra.dao.Direccion;
import org.sapra.dao.Universidad;
import org.sapra.dep.RFC;


/**
 *
 * @author cobain
 */
public class ReportePane extends ContentPane{
    private Column mParent;
    private vPrincipal principal;
    private  CheckBox vigencia,matricula,departamento,ciclo_escolar,fecha_inicio,
           universidad,rfc,quienReporta,fec_termino,carrera,
           fec_nacimiento,proyecto,escolaridad,horario,nombre_completo,
           direccion,email,sexo,mot_cancelacion,telefono,
           fec_cancelacion,beca,centro_costo,grado, seleccion;
    private Button reporte,selec;
    private SelectField mostrar, seleccionar;
    private DefaultListModel mos, sel;
    private boolean se;
    /*int ACTIVOS=0;
    int INACTIVOS=1;
    int TODOS=2;*/
    int archivo=0;
    int pantalla=1;
    int scc;
    int sc;
    private List<Practicante> mPracticantes=null;
    PracticanteReporte pr;
    Grid acomodar=new Grid();

 public ReportePane(){

    }
    
    public ReportePane(vPrincipal vprincipal){
         super();
        this.principal=vprincipal;
        initComponents();
    }
    
        public ReportePane(Column parent){
        mParent = parent;
        initComponents();
    }

    public void initComponents(){
        Column col1;

        acomodar.setSize(4);
        acomodar.setBorder(new Border(new Extent(5), Color.BLUE, 4));
        acomodar.setHeight(new Extent(200));
        acomodar.setWidth(new Extent(700));
        acomodar.setFont(new Font(new Font.Typeface("ARIAL"), 0, new Extent(14)));

        if(mParent != null) col1 = mParent;
        else{
            col1 = Helpers.Column("Default", new Extent(10),this);
            Row x=principal.getMenu();
            x.setAlignment(Alignment.ALIGN_CENTER);
            col1.add(x);
        }

        Row row1=Helpers.Row("Default", new Extent(5), col1);
        Helpers.Label("GENERACION DE REPORTES.", new Color(0x011dac), row1);
        row1.setAlignment(Alignment.ALIGN_CENTER);

        Row rowh2=Helpers.Row("Default", new Extent(5), col1);
        Helpers.Label("SELECCIONE EL ESTATUS DE LOS PRACTICANTES.", Color.BLACK, rowh2);
        rowh2.setAlignment(Alignment.ALIGN_CENTER);

        Row rowheader=Helpers.Row("Default", new Extent(10), col1);
        seleccionar=Helpers.SelectField(rowheader, null);
        rowheader.setAlignment(Alignment.ALIGN_CENTER);
        seleccionar.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {SelectFiltro(e);}});

        Row rowb=Helpers.Row("Default", new Extent(5), col1);
        seleccion=Helpers.CheckBox("SELECCIONAR TODOS", rowb);
        rowb.setAlignment(Alignment.ALIGN_CENTER);

        //ESTABLECER LA SELECCION DE TODOS LOS CHECKBOX
        seleccion.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                se=seleccion.isSelected();
                establecerCheckbox(se);

            }
        });
        
        Row row2=Helpers.Row("Default", new Extent(10), col1);
        vigencia=Helpers.CheckBox("VIGENCIA", acomodar);
        matricula=Helpers.CheckBox("MATRICULA", acomodar);
        departamento=Helpers.CheckBox("DEPARTAMENTO", acomodar);
        ciclo_escolar=Helpers.CheckBox("CICLO ESCOLAR", acomodar);
        row2.setAlignment(Alignment.ALIGN_CENTER);

        //Row row3=Helpers.Row("Default", new Extent(13), col1);
        fecha_inicio=Helpers.CheckBox("FECHA DE INICIO", acomodar);
        universidad=Helpers.CheckBox("UNIVERSIDAD", acomodar);
        rfc=Helpers.CheckBox("RFC", acomodar);
        quienReporta=Helpers.CheckBox("A QUIEN REPORTA", acomodar);
        //row3.setAlignment(Alignment.ALIGN_CENTER);

        //Row row4=Helpers.Row("Default", new Extent(4), col1);
        fec_termino=Helpers.CheckBox("FECHA TERMINO", acomodar);
        carrera=Helpers.CheckBox("CARRERA", acomodar);
        fec_nacimiento=Helpers.CheckBox("FECHA NACIMIENTO",acomodar);
        proyecto=Helpers.CheckBox("PROYECTO", acomodar);
        //row4.setAlignment(Alignment.ALIGN_CENTER);

        //Row row5=Helpers.Row("Default", new Extent(33), col1);
        escolaridad=Helpers.CheckBox("ESCOLARIDAD", acomodar);
        horario=Helpers.CheckBox("HORARIO", acomodar);
        nombre_completo=Helpers.CheckBox("NOMBRE", acomodar);
        direccion=Helpers.CheckBox("DIRECCION", acomodar);
        //row5.setAlignment(Alignment.ALIGN_CENTER);

        //Row row6=Helpers.Row("Default", new Extent(30), col1);
        email=Helpers.CheckBox("E-MAIL", acomodar);
        sexo=Helpers.CheckBox("SEXO", acomodar);
        mot_cancelacion=Helpers.CheckBox("MOTIVO CANCELACION", acomodar);
        telefono=Helpers.CheckBox("TELEFONO", acomodar);
        //row6.setAlignment(Alignment.ALIGN_CENTER);

        //Row row7=Helpers.Row("Default", new Extent(4), col1);
        fec_cancelacion=Helpers.CheckBox("FECHA DE CANCELACION", acomodar);
        beca=Helpers.CheckBox("APORTACION MENSUAL", acomodar);
        centro_costo=Helpers.CheckBox("CENTRO DE COSTO", acomodar);
        grado=Helpers.CheckBox("GRADO", acomodar);
        //row7.setAlignment(Alignment.ALIGN_CENTER);

        Row rowh3=Helpers.Row("Default", new Extent(5), col1);
        Helpers.Label("SELECCIONE EL MODO DE PRESENTACION.", Color.BLACK, rowh3);
        rowh3.setAlignment(Alignment.ALIGN_CENTER);

        Row row8=Helpers.Row("Default", new Extent(5), col1);
        mostrar=Helpers.SelectField(row8, null);
        row8.setAlignment(Alignment.ALIGN_CENTER);

        Row row9=Helpers.Row("Default", new Extent(5), col1);
        reporte=Helpers.Button("GENERAR REPORTE", row9, new ActionListener(){public void actionPerformed(ActionEvent e) {crearObjetoServlet(e);}});
        row9.setAlignment(Alignment.ALIGN_CENTER);
        
        /*acomodar.setOrientation(2);
        acomodar.add(vigencia);
        acomodar.add(matricula);
        acomodar.add(departamento);
        acomodar.add(ciclo_escolar);
        acomodar.add(fecha_inicio);
        acomodar.add(universidad);
        acomodar.add(rfc);
        acomodar.add(quienReporta);
        acomodar.add(fec_termino);
        acomodar.add(carrera);
        acomodar.add(fec_nacimiento);
        acomodar.add(proyecto);
        acomodar.add(escolaridad);
        acomodar.add(horario);
        acomodar.add(nombre_completo);
        acomodar.add(direccion);
        acomodar.add(email);
        acomodar.add(sexo);
        acomodar.add(mot_cancelacion);
        acomodar.add(telefono);
        acomodar.add(fec_cancelacion);
        acomodar.add(beca);
        acomodar.add(centro_costo);
        acomodar.add(grado);*/
        row2.add(acomodar);

       Opciones();
       FirstTime();
       
    }

    void FirstTime(){

        UpdateView();

       }

    void UpdateView(){
          mostrar.setSelectedIndex(0);
          //seleccionar.setSelectedIndex(0);
        int mode = seleccionar.getSelectedIndex();
        int mode2= mostrar.getSelectedIndex();
        if(mode < 0)return;
        if(mode2 < 0)return;
       }

    //ESTABLECER LAS OPCIONES DE LOS SELECTS
    public void Opciones(){
        mos=new DefaultListModel();
        mos.add(dPracticante.ACTIVOS,"ACTIVOS");
        mos.add(dPracticante.INACTIVOS,"INACTIVOS");
        mos.add(dPracticante.TODOS,"TODOS");
        seleccionar.setModel(mos);

        sel=new DefaultListModel();
        sel.add("EN ARCHIVO");
        sel.add("EN PANTALLA");
        mostrar.setModel(sel);
    }
         boolean establecerCheckbox(boolean b){
            vigencia.setSelected(b);
            matricula.setSelected(b);
            departamento.setSelected(b);
            ciclo_escolar.setSelected(b);
            fecha_inicio.setSelected(b);
            universidad.setSelected(b);
            rfc.setSelected(b);
            quienReporta.setSelected(b);
            fec_termino.setSelected(b);
            carrera.setSelected(b);
            fec_nacimiento.setSelected(b);
            proyecto.setSelected(b);
            escolaridad.setSelected(b);
            horario.setSelected(b);
            nombre_completo.setSelected(b);
            direccion.setSelected(b);
            email.setSelected(b);
            sexo.setSelected(b);
            mot_cancelacion.setSelected(b);
            telefono.setSelected(b);
            fec_cancelacion.setSelected(b);
            beca.setSelected(b);
            centro_costo.setSelected(b);
            grado.setSelected(b);
            return b;
    }
    void SelectFiltro(ActionEvent e){
        UpdateView();
    }

    //CREAR OBJETO BOLEANO
    public PracticanteReporte crearObjeto(){
        PracticanteReporte obj=new PracticanteReporte();

        try {
            if(vigencia.isSelected()==true){
            obj.setVigencia(true);
            }else{
                obj.setVigencia(false);
            }

            if(matricula.isSelected()==true){
                obj.setMatricula(true);
            }else{
                obj.setMatricula(false);
            }

            if(departamento.isSelected()==true){
                obj.setDepartamento(true);
            }else{
                obj.setDepartamento(false);
            }

            if(ciclo_escolar.isSelected()==true){
                obj.setCicloEscolar(true);
            }else{
                obj.setCicloEscolar(false);
            }

            if(fec_nacimiento.isSelected()==true){
                obj.setFechaNacimiento(true);
            }else{
                obj.setFechaNacimiento(false);
            }

            if(fec_termino.isSelected()==true){
                obj.setFechaTermino(true);
            }else{
                obj.setFechaTermino(false);
            }

            if(fecha_inicio.isSelected()==true){
                obj.setFechaInicio(true);
            }else{
                obj.setFechaInicio(false);
            }
            if(fec_termino.isSelected()==true){
                obj.setFechaTermino(true);
            }else{
                obj.setFechaTermino(false);
            }
            if(beca.isSelected()==true){
                obj.setBeca(true);
            }else{
                obj.setBeca(false);
            }

            if(carrera.isSelected()==true){
                obj.setCarrera(true);
            }else{
                obj.setCarrera(false);
            }

            if(direccion.isSelected()==true){
                obj.setDireccion(true);
            }else{
                obj.setDireccion(false);
            }

            if(centro_costo.isSelected()==true){
                obj.setCentroCosto(true);
            }else{
                obj.setCentroCosto(false);
            }

            if(email.isSelected()==true){
                obj.setEmail(true);
            }else{
                obj.setEmail(false);
            }

            if(rfc.isSelected()==true){
                obj.setRFC(true);
            }else{
                obj.setRFC(false);
            }

            if(escolaridad.isSelected()==true){
                obj.setEscolaridad(true);
            }else{
                obj.setEscolaridad(false);
            }

            if(universidad.isSelected()==true){
                obj.setUniversidad(true);
            }else{
                obj.setUniversidad(false);
            }

            if(nombre_completo.isSelected()==true){
                obj.setNombreCompleto(true);
            }else{
                obj.setNombreCompleto(false);
            }

            if(sexo.isSelected()==true){
                obj.setSexo(true);
            }else{
                obj.setSexo(false);
            }

            if(proyecto.isSelected()==true){
                obj.setProyecto(true);
            }else{
                obj.setProyecto(false);
            }

            if(horario.isSelected()==true){
                obj.setHorario(true);
            }else{
                obj.setHorario(false);
            }

            if(quienReporta.isSelected()==true){
                obj.setQuienReporta(true);
            }else{
                obj.setQuienReporta(false);
            }

            if(mot_cancelacion.isSelected()==true){
                obj.setMotivoCancelacion(true);
            }else{
                obj.setMotivoCancelacion(false);
            }

            if(telefono.isSelected()==true){
                obj.setTelefono(true);
            }else{
                obj.setTelefono(false);
            }

            if(grado.isSelected()==true){
                obj.setGrado(true);
            }else{
                obj.setGrado(false);
            }
            if(fec_nacimiento.isSelected()==true){
                obj.setFechaNacimiento(true);
            }else{
                obj.setFechaNacimiento(false);
            }
            if(fec_cancelacion.isSelected()==true){
                obj.setFechaCancelacion(true);
            }else{
                obj.setFechaCancelacion(false);
            }
        } catch (Exception e) {
            System.out.println("fallo en metodo crearObjeto");
            e.printStackTrace();

        }

        return obj;
    }

    //ESTABLECER EL ESTATUS DE LOS PRACTICANTES.
    public int establecerEstatus(){
        /*int sels=seleccionar.getSelectedIndex();
        switch(sels){
            case 0:sels=ACTIVOS;break;
            case 1:sels=INACTIVOS;break;
            case 2:sels=TODOS;break;
        }*/
        int sels=0;
        try {
             sels=seleccionar.getSelectedIndex();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Metodo establecerEstatus");
        }
       
        return sels;
    }

    public int establecerSeleccion(){
     int est=0;
        try {
            est=mostrar.getSelectedIndex();
            switch(est){
                case 0:est = archivo;break;
                case 1:est = pantalla;break;
            }
        } catch (Exception ex) {
            System.out.println("fallo en metodo establecerSeleccion");
            ex.printStackTrace();
        }
       
        return est;
    }

    //CREAR EL OBJETO PARA EL SERVLET
    public void crearObjetoServlet(ActionEvent e){
        try {
            pr=crearObjeto();
            scc=establecerEstatus();
            sc=establecerSeleccion();

        } catch (Exception ex) {
            System.out.println("fallo antes del if sc==archivo");
            ex.printStackTrace();
        }
        if(sc==archivo){
        //CSV
        DecimalFormat nf = new DecimalFormat("## ### ###.00");
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd",new Locale("es"));
        try {
             //FileWriter nuevo=new FileWriter("/home/cobain/Escritorio/Nuevo.csv");
            //FileWriter nuevo=new FileWriter("/home/luiz/Escritorio/Nuevo.csv");
            //FileWriter nuevo=new FileWriter("/home/cobain/Escritorio/Nuevo.csv");

            //FileWriter nuevo=new FileWriter("/opt/innoapps/ALT/Nuevo.csv");
            FileWriter nuevo=new FileWriter("C:/Users/develop/Documents/DocsSapra/Nuevo.csv");
            //FileWriter nuevo=new FileWriter("C:/Documents and Settings/Luiz/Mis documentos/Nuevo.csv");
            nuevo.write(" \nEmpresa: ,"+dLogin.getEmpresa().getRazon_empresa().replaceAll(",", ""));
            nuevo.write(" \nRazon Factura: ,"+dLogin.getEmpresa().getRazon_factura().replaceAll(",", ""));
            nuevo.write("\n");
            nuevo.write("\n");

            nuevo.write("CONVENIO");
            nuevo.write(",");

            if(pr.getNombreCompleto()==true){
                nuevo.write("NOMBRE COMPLETO");
                nuevo.write(",");
            }

            if(pr.getUniversidad()==true){
                nuevo.write("UNIVERSIDAD");
                nuevo.write(",");
            }

            if(pr.getCarrera()==true){
                nuevo.write("CARRERA,");
            }

            if(pr.getSexo()==true){
                nuevo.write("SEXO");
                nuevo.write(",");
            }
            
            if(pr.getEscolaridad()==true){
                nuevo.write("ESCOLARIDAD");
                nuevo.write(",");
            }
            
           if(pr.getEmail()==true){
                nuevo.write("EMAIL");
                nuevo.write(",");
            }
            
            if(pr.getFechaInicio()==true){
                nuevo.write("FECHA DE INICIO");
                nuevo.write(",");
            }
            
            if(pr.getFechaTermino()==true){
                nuevo.write("FECHA DE TERMINO");
                nuevo.write(",");
            }
            
            if(pr.getFechaCancelacion()==true){
                nuevo.write("FECHA DE CANCELACION");
                nuevo.write(",");
            }
            
            if(pr.getCicloEscolar()==true){
                nuevo.write("CICLO ESCOLAR");
                nuevo.write(",");
            }
            
            if(pr.getDepartamento()==true){
                nuevo.write("DEPARTAMENTO");
                nuevo.write(",");
            }
            
            if(pr.getMatricula()==true){
                nuevo.write("MATRICULA");
                nuevo.write(",");
            }
            
            if(pr.getVigencia()==true){
                nuevo.write("VIGENCIA");
                nuevo.write(",");
            }
            
            if(pr.getRFC()==true){
                nuevo.write("RFC");
                nuevo.write(",");
            }
            
            if(pr.getQuienReporta()==true){
                nuevo.write("A QUIEN REPORTA");
                nuevo.write(",");
            }
            
            if(pr.getProyecto()==true){
                nuevo.write("PROYECTO");
                nuevo.write(",");
            }
            
            if(pr.getHorario()==true){
                nuevo.write("HORARIO");
                nuevo.write(",");
            }
            
            if(pr.getDireccion()==true){
                nuevo.write("DIRECCION");
                nuevo.write(",");
            }
            
            if(pr.getTelefono()==true){
                nuevo.write("TELEFONO");
                nuevo.write(",");
            }
            
            if(pr.getMotivoCancelacion()==true){
                nuevo.write("MOTIVO DE CANCELACION");
                nuevo.write(",");
            }
            
            if(pr.getBeca()==true){
                nuevo.write("APORTACION MENSUAL");
                nuevo.write(",");
            }

            if(pr.getGrado()==true){
                nuevo.write("GRADO");
                nuevo.write(",");
            }

            if(pr.getFechaNacimiento()==true){
                nuevo.write("FECHA DE NACIMIENTO");
                nuevo.write(",");
            }

            if(pr.getCentroCosto()==true){
                nuevo.write("CENTRO DE COSTOS");
                //nuevo.write("\n");
            }
            //INICIALIZAR LAS LISTAS

            mPracticantes = dPracticante.getPracticantes(dLogin.getEmpresa(),scc);
            
            for(int i=0;i<mPracticantes.size();i++){
                Practicante p = (Practicante)mPracticantes.get(i);
                String linea="\n";

               linea+=p.getPracticanteId()+",";

                //NOMBRE COMPLETO
                if(pr.getNombreCompleto()==true){
                linea+=p.getNombre()+" "+p.getPaterno()+" "+p.getMaterno()+",";
                
                }else{linea+="";}

                //UNIVERSIDAD
                if(pr.getUniversidad()==true){
                    int u=p.getFk_universidadId();
                    Universidad us=dUniversidad.getUniversidad(u);
                    if(u==0){
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";}
                    else{
                    linea+=us.getNombre().replaceAll(",", "")+",";}
                } else{linea+="";}

                //CARRERA
                if(pr.getCarrera()==true)
                {   int c=p.getFk_carreraId();
                    Carrera cs=dCarrera.getCarrera(c);
                    if(c==0)
                    {
                         linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }
                    else
                    {
                      linea+=cs.getNombre()+",";
                    }
                }
                else
                {
                    linea+="";
                }

                //SEXO
                if(pr.getSexo()==true)
                {
                    try{
                        linea+=p.getSexo()+",";
                    }catch(NullPointerException ex){
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }

                }else{
                    linea+="";
                }

                //ESCOLARIDAD
                if(pr.getEscolaridad()==true)
                {   try{
                        linea+=p.getEscolaridad().replaceAll(",", "")+",";
                    }catch(NullPointerException ex){
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }

                }else{
                    linea+="";
                }

                //EMAIL
                if (pr.getEmail() == true) {
                    try {
                        if(p.getEmail()!=null&&!p.getEmail().equals("")){
                            linea += p.getEmail() + ",";
                        }else{
                            linea += "NO HAY DATOS QE MOSTRAR" + ",";
                        }

                    } catch (NullPointerException ex) {
                        linea += "NO HAY DATOS QE MOSTRAR" + ",";
                    }
                } else {
                    linea += "";
                }

                //FECHA DE INICIO
                if(pr.getFechaInicio()==true){
                    try{
                        if(p.getFec_inicioContrato() == null)
                            linea+="NO HAY DATOS QE MOSTRAR"+",";
                        else
                            linea+=df.format(p.getFec_inicioContrato())+",";
                    
                    }catch(NullPointerException ex){
                        linea+="NO HAY DATOS QE MOSTRAR"+",";}
                    }else{linea+="";}

                //FECHA DE TERMINO
                if(pr.getFechaTermino()==true){
                    try {
                        if(p.getFec_terminoContrato()==null){
                                linea+="NO HAY DATOS QUE MOSTRAR"+",";
                        }else{
                                linea+=df.format(p.getFec_terminoContrato())+",";
                        }
                    } catch (Exception ex) {
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }
                } else {
                        linea+="";
                    }

                 //FECHA DE CANCELACION
                 if(pr.getFechaCancelacion()==true)
                 {
                   try{
                       if(p.getFec_cancelacion() != null)
                        linea+=df.format(p.getFec_cancelacion())+",";
                       else
                           linea+="NO HAY DATOS QUE MOSTRAR"+",";
                   }catch(NullPointerException ex){
                       linea+="NO HAY DATOS QUE MOSTRAR"+",";
                   }

                 }else{

                    linea+="";
                   }

                //CICLO ESCOLAR
                if(pr.getCicloEscolar()==true){
                    try{
                linea+=p.getCiclo_escolar()+",";}catch(NullPointerException ex){linea+="NO HAY DATOS QE MOSTRAR"+",";}
                }else{linea+="";}
//else return;
                if(pr.getDepartamento()==true){
                    Departamento dp=dDepartamento.getDepartamento(p.getFk_departamentoId());
                    try{
                linea+=dp.getNombre()+",";}catch(NullPointerException ex){linea+="NO HAY DATOS QE MOSTRAR"+",";}
                   }else{linea+="";}


                if(pr.getMatricula()==true){
                linea+=p.getMatricula()+",";}else{linea+="";}

                 if(pr.getVigencia()==true){
                linea+=p.getRegimen()+",";}else{linea+="";}

                //RFC
                if (pr.getRFC()==true)
                {   try{
                        if(RFC.ProcessRFC(p))
                                linea+=p.getRfc()+",";
                        else
                            linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }catch(NullPointerException ex){
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }

                }else{

                    linea+="";
                   }


                if (pr.getQuienReporta() == true) {
                    try {
                        if (p.getReportara() != null && !p.getReportara().equals("")) {
                            linea += p.getReportara() + ",";
                        } else {
                            linea += "NO HAY DATOS QUE MOSTRAR" + ",";
                        }

                    } catch (Exception ex) {
                        linea += "NO HAY DATOS QUE MOSTRAR" + ",";
                    }
                } else {
                    linea += "";
                }

                if (pr.getProyecto() == true) {
                    try {
                        if (p.getProyecto() != null && !p.getProyecto().equals("")) {
                            linea += p.getProyecto() + ",";
                        } else {
                            linea += "NO HAY DATOS QUE MOSTRAR" + ",";
                        }
                    } catch (Exception ex) {
                        linea += "NO HAY DATOS QUE MOSTRAR" + ",";
                    }

                } else {
                    linea += "";
                }

                if(pr.getHorario()==true){
                    try{
                linea+=p.getHorarioInicio()+" "+"a"+" "+ p.getHorarioFin()+ ",";}catch(NullPointerException ex){linea+="NO HAY DATOS QE MOSTRAR"+",";}
                }else{linea+="";}

                if(pr.getDireccion()==true){
                    Direccion dirs=dDireccion.getDireccion(p.getFk_direccionId());
                linea+=dirs.getcalle()+" "+dirs.getnumero_exterior()+" "+dirs.getsColonia()+" "+dirs.getsPoblacion()+",";}else{linea+="";}

                if(pr.getTelefono()==true){
                linea+=p.getTelefono()+",";}else{linea+="";}

                //MOTIVO DE CANCELACION
                if(pr.getMotivoCancelacion()==true)
                {
                    try{
                        if(p.getMotivo_cancelacion()!=null && !p.getMotivo_cancelacion().trim().equals("")){
                             linea+=p.getMotivo_cancelacion()+",";
                        }else{
                            linea+="NO HAY DATOS QUE MOSTRAR"+",";
                        }
                       
                    }catch(NullPointerException ex){
                        linea+="NO HAY DATOS QUE MOSTRAR"+",";
                    }
                    

                }else{

                    linea+="";
                   }

                //BECA
                if(pr.getBeca()==true){
                linea+=p.getSueldo()+",";}else{linea+="";}

                if(pr.getGrado()==true){
                linea+=p.getGrado()+ ",";}else{linea+="";}

                //FECHA DE NACIMIENTO
                if(pr.getFechaNacimiento()==true)
                 {
                   try{
                       if(p.getFec_nacimiento() != null)
                       linea+=df.format(p.getFec_nacimiento())+",";
                   }catch(NullPointerException ex){
                       linea+="NO HAY DATOS QUE MOSTRAR"+",";
                   }

                 }else{

                    linea+="";
                   }

                //CENTRO DE COSTO
                if(pr.getCentroCosto()==true){
                    CCosto cc=dCentroCosto.getCCosto(p.getFk_centroCostoId());
                linea+=cc.getNombre()+",";

                }else{linea+="";}

                ///linea+="\n";
                nuevo.write(linea);
            }
            
            nuevo.close();

             //File f=new File("/home/cobain/Escritorio/Nuevo.csv");
             //File f=new File("/opt/innoapps/ALT/Nuevo.csv");

             //File f=new File("/home/cobain/Escritorio/Nuevo.csv");
            File f=new File("C:/Users/develop/Documents/DocsSapra/Nuevo.csv");
             //File f=new File("/home/luiz/Escritorio/Nuevo.csv");
             //f.createNewFile();
            //File f=new File("C:/Documents and Settings/Luiz/Mis documentos/Nuevo.csv");
            final byte[] content = new byte[(int) f.length()];
            FileInputStream inputStream = new FileInputStream(f);
            inputStream.read(content);
            inputStream.close();
            final String fname=f.getName();
            Download archivo=new Download();
                            archivo.setProvider(new DownloadProvider() {

                                public String getContentType() {
                                            return ".csv";
                                        }

                                        public String getFileName() {
                                            return "Reporte_"+dLogin.getEmpresa().toString()+".csv";
                                        }

                                        public int getSize() {
                                            return 0;
                                        }

                                        public void writeFile(OutputStream out) throws IOException {
                                            out.write(content);
                                        }

                    public void writeFilea(java.io.OutputStream out) throws IOException {
                        throw new UnsupportedOperationException("Not supported yet.");
                    }
                                    });
        f.delete();
        archivo.setActive(true);
        ApplicationInstance app = ApplicationInstance.getActive();
        app.getActive().enqueueCommand(archivo);


        } catch (Exception ex) {
            ex.printStackTrace();
        }
       }
        else if(sc==pantalla)
       {
        HttpSession session = WebRenderServlet.getActiveConnection().getRequest().getSession();
        String fil=Integer.toString(scc);
        String em=Integer.toString(dLogin.getEmpresa().getEmpresaId());
        PracticanteReporte obj=pr;

        session.setAttribute("_filtro", fil);
        session.setAttribute("_idempresa",em);
        session.setAttribute("_objeto", obj);

        HttpServletRequest sreq = WebRenderServlet.getActiveConnection().getRequest();
        String hostname = sreq.getServerName().toLowerCase();
        int hostport = sreq.getServerPort();

        mostrarReporte();

       }
        
        return;
    }

    //MOSTRAR EL SERVLET EN PANTALLA
    public void mostrarReporte(){
        //se=seleccion.isSelected();
        //if(establecerCheckbox(se)==false){
            ///add(new wAviso("ERROR","DEBE SELECCIONAR AL MENOS UN PARAMETRO DE BUSQUEDA"));
        //}
          //else{
                try {
                   HttpSession session = WebRenderServlet.getActiveConnection().getRequest().getSession();
        String fil=Integer.toString(scc);
        String em=Integer.toString(dLogin.getEmpresa().getEmpresaId());
        PracticanteReporte obj=pr;

        session.setAttribute("_filtro", fil);
        session.setAttribute("_idempresa",em);
        session.setAttribute("_objeto", obj);

        //ApplicationInstance.getActive().enqueueCommand(new BrowserOpenWindowCommand("http://www.administraciondepracticantes.com:8080/Zaprax/ReporteServlet","",""));
        //ApplicationInstance.getActive().enqueueCommand(new BrowserOpenWindowCommand("http://localhost:8084/Zaprax/ReporteServlet","",""));//"http://"+hostname+":"+hostport+"/ServletPoliza","",""));
        ApplicationInstance.getActive().enqueueCommand(new BrowserOpenWindowCommand("http://www.administraciondepracticantes.com/Zaprax/ReporteServlet","",""));//"http://"+hostname+":"+hostport+"/ServletPoliza","",""));
                 } catch (Exception e) {
                              e.printStackTrace();
                              }

    }


}
